package cn.ms.neural.common.concurrent;

public abstract class Number implements java.io.Serializable {

	/**
	 * Returns the value of the specified number as an {@code int}, which may
	 * involve rounding or truncation.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code int}.
	 */
	public abstract int intValue();

	/**
	 * Returns the value of the specified number as a {@code long},which may
	 * involve rounding or truncation.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code long}.
	 */
	public abstract long longValue();

	/**
	 * Returns the value of the specified number as a {@code float}, which may
	 * involve rounding.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code float}.
	 */
	public abstract float floatValue();

	/**
	 * Returns the value of the specified number as a {@code double}, which may
	 * involve rounding.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code double}.
	 */
	public abstract double doubleValue();

	/**
	 * Returns the value of the specified number as a {@code byte}, which may
	 * involve rounding or truncation.
	 *
	 * <p>
	 * This implementation returns the result of {@link #intValue} cast to a
	 * {@code byte}.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code byte}.
	 * @since JDK1.1
	 */
	public byte byteValue() {
		return (byte) intValue();
	}

	/**
	 * Returns the value of the specified number as a {@code short}, which may
	 * involve rounding or truncation.
	 *
	 * <p>
	 * This implementation returns the result of {@link #intValue} cast to a
	 * {@code short}.
	 *
	 * @return the numeric value represented by this object after conversion to
	 *         type {@code short}.
	 * @since JDK1.1
	 */
	public short shortValue() {
		return (short) intValue();
	}

	/** use serialVersionUID from JDK 1.0.2 for interoperability */
	private static final long serialVersionUID = -8742448824652078965L;
	
}
